package com.raidpoints.client;

import java.util.ArrayList;
import java.util.HashMap;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.raidpoints.client.LootEditor.lootitem;

//@RemoteServiceRelativePath("rpsvc")
public interface RaidPointsService extends RemoteService {
	String AuthUser(String user, String pass);
	String GetSessionPerm();
	String GetDest();
	ArrayList<event> GetEventList();
	ArrayList<event> AddEvent(event evt,int reoc);
	event UpdateEvent(event evt, boolean cancel);
	ArrayList<character> GetCharacters(event evt);
	ArrayList<pointsevent> GetLoot(event evt);
	String Logout();
	HashMap<String,ArrayList<String[]>> GetBosses(event evt);
	ArrayList<character> AddCharsToEvent(event evt, String charlist);
	ArrayList<character> RemoveCharsFromEvent(event evt, ArrayList<character> charlist);
	ArrayList<pointsevent> UpdateLoot(event evt, ArrayList<pointsevent> pointslist);
	ArrayList<character> GetAllChars();
	ArrayList<pointsevent> GetCharHistory(int cid,String pool);
	event GetEvent(int eid);
	ArrayList<pointsevent> RecalcPointsA(int cid, int pid, String pool);
	String AddUser(String user, String pass);
	ArrayList<character> GetAccountChars(int cid);
	ArrayList<event> GetAccountEvents(int cid);
	String ChangeAccountChar(character mc);
	ArrayList<gameinfo> GetAddInfo();
	String RemoveAccountChar(character mc);
	ArrayList<character> GetEligableCharacters(event evt);
	String CharacterSignup(event evt, ArrayList<character> mc, String note);
	String CharacterSignupMulti(ArrayList<event> evt, ArrayList<character> mc, String note);
	ArrayList<character> GetSlotList(event evt);
	String SendSlotList(event evt, ArrayList<character> charlist, boolean publish);
	String GetRoles(event evt);
	String ModifySignup(event evt);
	Integer GetTimeOffset(int hour, int day);
	String UpdateAccountInfo(character mc);
	String GetNotInfo();
	String SetNotInfo(String info);
	String ContactAdmin(String message);
	String ChangePass(String pass);
	String DoStuff(String stuff);
	String AccountName(int cid);
	ArrayList<String> GetPools(int gid, int cid);
	Boolean CharterPerm(event evt); 
	HashMap<String,ArrayList<NewEventBox.pointspool>> GetCharters();
	character GetCharacter(int cid);
	ArrayList<String> GetAlts(int cid, event eid);
	ArrayList<String> SearchChars(String search, event eid);
	ArrayList<String> GetRegulars(event evt);
	String SendChatMessage(String message, String mychar,event evt);
	ArrayList<String> GetChatMessages(event evt);
	ArrayList<String> PollChat(int pointer);
	ArrayList<String> PollChatW(int pointer);
	String SetCalHeight(int ch);
	String SetMilTime(int mt);
	String SplitRaid(event evt);
	character GetFullChar(int cid);
	String GetGroupDesc(int gid);
	String SaveGroupDesc(String desc, int gid);
	ArrayList<String> GetGroups();
	ArrayList<String> GetAccountPerm(int cid);
	String SendAccountPerm(int cid, String perm);
	ArrayList<gameinfo> GetGames();
	String SetTab(String tabs);
	ArrayList<String> GetTabInfo();
	ArrayList<String> GetEditablePools();
	String GetPoolRuleset(String poolname);
	String SavePoolRuleset(String poolname, String ruleset);
	ArrayList<String> GetAllDest();
	ArrayList<String> GetEncounters(int destid);
	ArrayList<lootitem> GetEditableLoot(int encounterid);
	ArrayList<lootitem> EditLoot(ArrayList<lootitem> ll);
	String AddEncounter(int destid, String bossname);
	String AddDestination(int gameid, String destname);
	String ImportLoot(int destid, String loot);
	String AdditionalCharInfo(int cid);
	String AddHelpView();
	ArrayList<String> GetAllPools(int gid, boolean group);
	Integer AddNewPool(int gameid, String poolname, boolean hasruleset);
	String SetGroupPools(int gid, ArrayList<Integer> pools);
	String SetDestPools(int did, ArrayList<Integer> pools);
}
